5.01. Ключевые слова в JavaScript
Ключевые слова в JavaScript
JavaScript содержит набор зарезервированных слов, которые имеют специальное значение в языке. Эти слова нельзя использовать в качестве идентификаторов для переменных, функций или классов.
Управляющие структуры
| Ключевое слово | Значение | Пример |
|---|---|---|
if | Выполняет блок кода при истинности условия | if (x > 0) { console.log("Положительное"); } |
else | Выполняет альтернативный блок кода при ложности условия if | if (x > 0) { console.log("Положительное"); } else { console.log("Отрицательное"); } |
switch | Выбирает один из множества блоков кода для выполнения | switch (day) { case 1: console.log("Понедельник"); break; } |
case | Определяет вариант в конструкции switch | case "admin": accessLevel = 10; break; |
default | Определяет блок кода по умолчанию в конструкции switch | switch (value) { case 1: break; default: console.log("Неизвестное значение"); } |
break | Прерывает выполнение цикла или конструкции switch | for (let i = 0; i < 10; i++) { if (i === 5) break; } |
continue | Пропускает текущую итерацию цикла и переходит к следующей | for (let i = 0; i < 10; i++) { if (i % 2 === 0) continue; console.log(i); } |
Циклы
| Ключевое слово | Значение | Пример |
|---|---|---|
for | Создает цикл с инициализацией, условием и финальным выражением | for (let i = 0; i < 5; i++) { console.log(i); } |
while | Выполняет блок кода, пока условие истинно | while (count < 10) { count++; } |
do | Выполняет блок кода один раз, затем повторяет при истинности условия | do { console.log(count); count++; } while (count < 5); |
for...of | Перебирает итерируемые объекты (массивы, строки, Map, Set) | for (let char of "hello") { console.log(char); } |
for...in | Перебирает перечисляемые свойства объекта | for (let key in obj) { console.log(key + ": " + obj[key]); } |
Объявление переменных и функций
| Ключевое слово | Значение | Пример |
|---|---|---|
var | Объявляет переменную с функциональной областью видимости | var x = 10; |
let | Объявляет переменную с блочной областью видимости | let y = 20; |
const | Объявляет константу с блочной областью видимости | const PI = 3.14; |
function | Объявляет функцию | function greet() { console.log("Привет!"); } |
return | Возвращает значение из функции и завершает её выполнение | function add(a, b) { return a + b; } |
this | Ссылается на текущий контекст выполнения | function Person(name) { this.name = name; } |
arguments | Массивоподобный объект с аргументами функции | function sum() { return arguments[0] + arguments[1]; } |
Классы и объекты
| Ключевое слово | Значение | Пример |
|---|---|---|
class | Объявляет класс | class Animal { constructor(name) { this.name = name; } } |
new | Создает экземпляр объекта или класса | let obj = new Object(); |
extends | Создает дочерний класс, наследующий от родительского | class Dog extends Animal { bark() { console.log("Гав!"); } } |
super | Вызывает конструктор родительского класса или его методы | class Child extends Parent { constructor() { super(); } } |
static | Определяет статический метод или свойство класса | class MathUtil { static add(a, b) { return a + b; } } |
get | Определяет геттер для свойства объекта | class Temperature { get celsius() { return this._celsius; } } |
set | Определяет сеттер для свойства объекта | class Temperature { set celsius(value) { this._celsius = value; } } |
Обработка ошибок
| Ключевое слово | Значение | Пример |
|---|---|---|
try | Определяет блок кода для проверки на ошибки | try { riskyOperation(); } catch (error) { console.log(error); } |
catch | Обрабатывает ошибку, выброшенную в блоке try | try { } catch (error) { console.log("Ошибка: " + error.message); } |
finally | Выполняет блок кода после try/catch независимо от результата | try { } catch (e) { } finally { console.log("Завершено"); } |
throw | Генерирует пользовательскую ошибку | throw new Error("Что-то пошло не так"); |
Модули
| Ключевое слово | Значение | Пример |
|---|---|---|
import | Импортирует функции, объекты или примитивы из модуля | import { func } from './module.js'; |
export | Экспортирует функции, объекты или примитивы для использования в других модулях | export function helper() { } |
default | Указывает значение по умолчанию для экспорта | export default class App { } |
from | Указывает источник импорта | import React from 'react'; |
as | Создает псевдоним для импортированного или экспортированного элемента | import { func as myFunc } from './module.js'; |
Асинхронное программирование
| Ключевое слово | Значение | Пример |
|---|---|---|
async | Объявляет асинхронную функцию | async function fetchData() { return await fetch(url); } |
await | Ожидает завершения промиса внутри асинхронной функции | let data = await fetch(url); |
yield | Приостанавливает выполнение генератора и возвращает значение | function* gen() { yield 1; yield 2; } |
Прочие ключевые слова
| Ключевое слово | Значение | Пример |
|---|---|---|
typeof | Возвращает строку с типом операнда | typeof 42; // "number" |
instanceof | Проверяет, является ли объект экземпляром класса | arr instanceof Array; // true |
void | Выполняет выражение и возвращает undefined | void 0; // undefined |
delete | Удаляет свойство объекта | delete obj.property; |
in | Проверяет наличие свойства в объекте | 'name' in obj; // true |
of | Используется в цикле for...of для перебора итерируемых объектов | for (let item of array) { } |
debugger | Устанавливает точку останова для отладчика | debugger; // остановка выполнения |
Зарезервированные слова (нельзя использовать)
| Ключевое слово | Значение |
|---|---|
enum | Зарезервировано для будущего использования |
implements | Зарезервировано для будущего использования |
interface | Зарезервировано для будущего использования |
package | Зарезервировано для будущего использования |
private | Зарезервировано для будущего использования |
protected | Зарезервировано для будущего использования |
public | Зарезервировано для будущего использования |
abstract | Зарезервировано для будущего использования |
final | Зарезервировано для будущего использования |
native | Зарезервировано для будущего использования |
synchronized | Зарезервировано для будущего использования |
throws | Зарезервировано для будущего использования |
transient | Зарезервировано для будущего использования |
volatile | Зарезервировано для будущего использования |
Зарезервированные слова в строгом режиме
| Ключевое слово | Значение |
|---|---|
let | В строгом режиме зарезервировано для объявления переменных |
static | В строгом режиме зарезервировано для статических методов |
yield | В строгом режиме зарезервировано для генераторов |
implements | В строгом режиме зарезервировано |
interface | В строгом режиме зарезервировано |
package | В строгом режиме зарезервировано |
private | В строгом режиме зарезервировано |
protected | В строгом режиме зарезервировано |
public | В строгом режиме зарезервировано |
Логические операторы и литералы
| Ключевое слово | Значение | Пример |
|---|---|---|
true | Булево значение "истина" | let isActive = true; |
false | Булево значение "ложь" | let isEmpty = false; |
null | Значение "ничего" или "пусто" | let value = null; |
undefined | Значение "не определено" | let x; console.log(x); // undefined |
NaN | "Не число" (результат недопустимой математической операции) | let result = 0 / 0; // NaN |
Контекст выполнения
| Ключевое слово | Значение | Пример |
|---|---|---|
with | Расширяет цепочку областей видимости (не рекомендуется) | with (obj) { console.log(property); } |
eval | Выполняет строку как код JavaScript | eval("console.log('Привет')"); |